package com.itheima.config;

import com.alibaba.druid.pool.DruidDataSource;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.PropertySource;

import javax.sql.DataSource;

/**
 * @author huyoufu <https://github.com/huyoufu>
 * @TIME 2020-08-06 14:39
 * @description
 */
/**
 * <context:property-placeholder location="classpath:db.properties"></context:property-placeholder>
 * 跟它是一个作用
 */
@PropertySource("classpath:db.properties")
public class DatasourceConfig {
    /**
     * 就是读取properties里面值 赋值给属性!!!
     */
    @Value("${jdbc.driver}")
    private String driverClassname;
    @Value("${jdbc.url}")
    private String url;
    @Value("${jdbc.username}")
    private String username;
    @Value("${jdbc.password}")
    private String password;

    //如果有一些 不是我们写的类  我们可以使用方法来做
    /**
     * 方法名随便起 最好见名知意
     * 方法的返回值 是你希望放入容器对象
     *
     * 方法上必须加上注解 @Bean
     */
    @Bean
    public DataSource generateDatasource(){
        DruidDataSource dataSource = new DruidDataSource();
        dataSource.setDriverClassName(driverClassname);
        dataSource.setUrl(url);
        dataSource.setUsername(username);
        dataSource.setPassword(password);

        return dataSource;
    }
}
